namespace System.Transactions.Abstractions
{
    // Summary:
    //     Describes a delegated transaction for an existing transaction that can be
    //     escalated to be managed by the MSDTC when needed.
    public interface ITransactionPromoterAbstraction
    {
        // Summary:
        //     Notifies an enlisted object that an escalation of the delegated transaction
        //     has been requested.
        //
        // Returns:
        //     A transmitter/receiver propagation token that marshals a distributed transaction.
        //     For more information, see System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken(System.Byte[]).
        byte[] Promote();
    }
}
